
#if 0
   Version strings for product keys... no comments can be allowed in this
   file due to some usage of this in the build process.
   // Licensed to the .NET Foundation under one or more agreements.
   // The .NET Foundation licenses this file to you under the MIT license.
   // See the LICENSE file in the project root for more information.
#endif 

#include <version.h>
#ifdef USE_CLR20_VERSION
#include <asm_version20.h>
#else
#include <asm_version.h>
#endif

#ifdef CLR_MAJOR_VERSION
#undef CLR_MAJOR_VERSION
#endif

#ifdef CLR_MINOR_VERSION
#undef CLR_MINOR_VERSION
#endif

#ifdef CLR_BUILD_VERSION
#undef CLR_BUILD_VERSION
#endif

#ifdef CLR_BUILD_VERSION_QFE
#undef CLR_BUILD_VERSION_QFE
#endif

#ifdef VER_FILEVERSIONMINOR
#undef VER_FILEVERSIONMINOR
#endif

#ifdef VER_FILEVERSIONBUILD
#undef VER_FILEVERSIONBUILD
#endif

#ifdef VER_FILEVERSIONREVISION
#undef VER_FILEVERSIONREVISION
#endif

#define CLR_MAJOR_VERSION        rmj
#define CLR_MINOR_VERSION        rmm
#define CLR_BUILD_VERSION        rup
#define CLR_BUILD_VERSION_QFE    rpt

#define VER_FILEVERSIONMINOR        fvn
#define VER_FILEVERSIONBUILD        fvb
#define VER_FILEVERSIONREVISION     fvr

#define VER_ASSEMBLYMAJORVERSION        asm_rmj
#define VER_ASSEMBLYMINORVERSION        asm_rmm
#define VER_ASSEMBLYBUILD               asm_rup
#define VER_ASSEMBLYBUILD_QFE           asm_rpt

#define QUOTE_MACRO_HELPER(x)       #x
#define QUOTE_MACRO(x)              QUOTE_MACRO_HELPER(x)

#ifndef QUOTE_MACRO_L
#define QUOTE_MACRO_L_HELPER(x)     L###x
#define QUOTE_MACRO_L(x)            QUOTE_MACRO_L_HELPER(x)
#endif

#define CONCAT_MACRO_HELPER(x, y)   x ## y
#define CONCAT_MACRO(x, y)          CONCAT_MACRO_HELPER(x, y)

#define VER_PRODUCTVERSION             CLR_MAJOR_VERSION,CLR_MINOR_VERSION,CLR_BUILD_VERSION,CLR_BUILD_VERSION_QFE
#define VER_DOTFILEVERSION             CLR_MAJOR_VERSION,VER_FILEVERSIONMINOR,VER_FILEVERSIONBUILD,VER_FILEVERSIONREVISION
#define VER_MANAGED_DOTFILEVERSION     CLR_MAJOR_VERSION.VER_FILEVERSIONMINOR.VER_FILEVERSIONBUILD.VER_FILEVERSIONREVISION

#define VER_DOTPRODUCTVERSION          CLR_MAJOR_VERSION.CLR_MINOR_VERSION.CLR_BUILD_VERSION.CLR_BUILD_VERSION_QFE
#define VER_DOTPRODUCTMAJORMINOR       CLR_MAJOR_VERSION.CLR_MINOR_VERSION
#define VER_DOTPRODUCTVERSIONNOQFE     CLR_MAJOR_VERSION.CLR_MINOR_VERSION.CLR_BUILD_VERSION
#define VER_DOTPRODUCTVERSIONZEROQFE     CLR_MAJOR_VERSION.CLR_MINOR_VERSION.CLR_BUILD_VERSION.0
#define VER_DOTASSEMBLYVERSION         VER_ASSEMBLYMAJORVERSION.VER_ASSEMBLYMINORVERSION.VER_ASSEMBLYBUILD.VER_ASSEMBLYBUILD_QFE
#define VER_DOTASSEMBLYVERSION3PART    VER_ASSEMBLYMAJORVERSION.VER_ASSEMBLYMINORVERSION.VER_ASSEMBLYBUILD

#define VER_UNDERSCORE_PRODUCTVERSION_STR3  CONCAT_MACRO(_, CLR_BUILD_VERSION)
#define VER_UNDERSCORE_PRODUCTVERSION_STR2  CONCAT_MACRO(CLR_MINOR_VERSION, VER_UNDERSCORE_PRODUCTVERSION_STR3)
#define VER_UNDERSCORE_PRODUCTVERSION_STR1  CONCAT_MACRO(_, VER_UNDERSCORE_PRODUCTVERSION_STR2)
#define VER_UNDERSCORE_PRODUCTVERSION       CONCAT_MACRO(CLR_MAJOR_VERSION, VER_UNDERSCORE_PRODUCTVERSION_STR1)

#define VER_UNDERSCORE_PRODUCTVERSION_STR   QUOTE_MACRO(VER_UNDERSCORE_PRODUCTVERSION)
#define VER_UNDERSCORE_PRODUCTVERSION_STR_L QUOTE_MACRO_L(VER_UNDERSCORE_PRODUCTVERSION)

#define FX_FILEVERSION_STR             QUOTE_MACRO(VER_MANAGED_DOTFILEVERSION)
#define VER_PRODUCTVERSION_STR         QUOTE_MACRO(VER_DOTPRODUCTVERSION)
#define VER_PRODUCTVERSION_STR_L       QUOTE_MACRO_L(VER_DOTPRODUCTVERSION)

#define VER_PRODUCTMAJORMINOR_STR         QUOTE_MACRO(VER_DOTPRODUCTMAJORMINOR)
#define VER_PRODUCTMAJORMINOR_STR_L       QUOTE_MACRO_L(VER_DOTPRODUCTMAJORMINOR)

#define VER_PRODUCTVERSION_NO_QFE_STR         QUOTE_MACRO(VER_DOTPRODUCTVERSIONNOQFE)
#define VER_PRODUCTVERSION_NO_QFE_STR_L       QUOTE_MACRO_L(VER_DOTPRODUCTVERSIONNOQFE)

#define VER_PRODUCTVERSION_ZERO_QFE_STR         QUOTE_MACRO(VER_DOTPRODUCTVERSIONZEROQFE)
#define VER_PRODUCTVERSION_ZERO_QFE_STR_L       QUOTE_MACRO_L(VER_DOTPRODUCTVERSIONZEROQFE)

#define VER_PRODUCTVERSION_NO_QFE_STR         QUOTE_MACRO(VER_DOTPRODUCTVERSIONNOQFE)
#define VER_PRODUCTVERSION_NO_QFE_STR_L       QUOTE_MACRO_L(VER_DOTPRODUCTVERSIONNOQFE)

#define VER_ASSEMBLYVERSION_STR        QUOTE_MACRO(VER_DOTASSEMBLYVERSION)
#define VER_ASSEMBLYVERSION_STR_L      QUOTE_MACRO_L(VER_DOTASSEMBLYVERSION)

#define VER_ASSEMBLYVERSION3PART_STR   QUOTE_MACRO(VER_DOTASSEMBLYVERSION3PART)
#define VER_ASSEMBLYVERSION3PART_STR_L QUOTE_MACRO_L(VER_DOTASSEMBLYVERSION3PART)

#define VER_ECMA_PUBLICKEY             b77a5c561934e089
#define ECMA_PUBLICKEY_STR             QUOTE_MACRO(VER_ECMA_PUBLICKEY)
#define ECMA_PUBLICKEY_STR_L           QUOTE_MACRO_L(VER_ECMA_PUBLICKEY)
